package com.example.children.FileService;

import com.example.children.Model.User;


public interface RegisterInterface {

    /**
     * 检查密码是否符合强度要求。
     * 密码必须满足以下条件：
     * - 长度至少 8 个字符
     * - 包含至少一个数字 (0-9)
     * - 包含至少一个特殊字符，如 !@#$%^&*
     * - 只允许字母、数字和上述特殊字符
     *
     * @param password 用户输入的密码
     * @return 如果密码符合要求，则返回 true，否则返回 false
     */
    boolean isValidPassword(String password);

    /**
     * 保存用户信息。
     * 使用 MyBatis-Plus 插入用户数据。
     *
     * @param user 用户对象，包含用户的各项信息
     * @return 如果插入成功，返回 true，否则返回 false
     */
    boolean saveUser(User user);

    /**
     * 插入用户数据。
     * 使用 MyBatis-Plus 提供的 insert 方法直接插入数据。
     *
     * @param user 用户对象，包含用户的各项信息
     * @return 如果插入成功，返回 true，否则返回 false
     */
    boolean insertUser(User user);

    /**
     * 检查用户名是否已存在。
     *
     * @param username 用户名
     * @return 如果用户已存在，返回该用户对象；如果不存在，返回 null
     */
    User isUsernameExist(String username);

    /**
     * 检查邀请码是否存在。
     *
     * @param invitationCode 邀请码
     * @return 如果邀请码存在，返回邀请码；如果不存在，返回 null
     */
    String isInvitationCode(String invitationCode);

    /**
     * 检查教师ID是否存在。
     *
     * @param id 教师ID
     * @return 如果教师ID存在，返回 true；否则返回 false
     */
    boolean isTeacherId(String id);
}

